﻿@model BuildContext
@{
    var project = Model.Project;
}
<?xml version="1.0" encoding="utf-8"?>
<!-- NLog日志配置 -->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="c:/log/nlog.log">
  <!-- ==========变量定义============ -->
  <!-- 应用程序名称 -->
  <variable name="applicationName" value="@project.Module"></variable>
  <!-- 日志输出目录-->
  <variable name="logPath" value="${basedir}/log/${applicationName}/${level}/${shortdate}"></variable>
  <!-- ===========输出目标=========== -->
  <!-- 异步执行 -->
  <targets async="true">
    <!-- 写入文件，用于开发阶段排错 -->
    <!--
      使用说明：
      maxArchiveFiles：最大存储文件数
      archiveAboveSize：文件限制大小。单位：byte
    -->
    <target name="file" xsi:type="File" fileName="${logPath}/${level}.log" layout="${message}" maxArchiveFiles="100" archiveAboveSize="102400" />
    <!--WebApi调试日志-->
    <target name="apiLog" xsi:type="File" fileName="${logPath}/api-trace.log" layout="${message}" maxArchiveFiles="100" archiveAboveSize="102400" />
    <!--Ef调试日志-->
    <target name="efLog" xsi:type="File" fileName="${logPath}/ef.log" layout="${message}" maxArchiveFiles="100" archiveAboveSize="102400" />
    <!--Sql查询调试日志-->
    <target name="queryLog" xsi:type="File" fileName="${logPath}/sql-query.log" layout="${message}" maxArchiveFiles="100" archiveAboveSize="102400" />
    <!--Ui调试日志-->
    <target name="uiLog" xsi:type="File" fileName="${logPath}/ui.log" layout="${message}" maxArchiveFiles="100" archiveAboveSize="102400" />
  </targets>
  <!-- ===========规则=========== -->
  <rules>
    <!-- 所有日志写入文件，用于开发阶段排错 -->
    <!-- WebApi调试日志 -->
    <logger minlevel="Trace" name="ApiTraceLog" writeTo="apiLog" />
    <!-- Ef调试日志 -->
    <logger minlevel="Trace" name="EfTraceLog" writeTo="efLog" />
    <!-- Sql查询调试日志 -->
    <logger minlevel="Trace" name="SqlQueryLog" writeTo="queryLog" />
    <!-- Ui调试日志 -->
    <logger minlevel="Trace" name="UiTraceLog" writeTo="uiLog" />
    <!-- 日志级别：Trace,Debug,Info,Warn,Error,Fatal,Off -->
    <logger minlevel="Trace" name="*" writeTo="file">
      <!--<filters>
        -->
      <!-- 排除Api日志 -->
      <!--
        <when condition="equals(logger,'ApiTraceLog')" action="Ignore" />
        -->
      <!-- 排除Ef日志 -->
      <!--
        <when condition="equals(logger,'EfTraceLog')" action="Ignore" />
        -->
      <!-- 排除Sql查询日志 -->
      <!--
        <when condition="equals(logger,'SqlQueryLog')" action="Ignore" />
        -->
      <!-- 排除Ui日志 -->
      <!--
        <when condition="equals(logger,'UiTraceLog')" action="Ignore" />
      </filters>-->
    </logger>
  </rules>
</nlog>